
#if 0

#include"HashTable.h"

void test01()
{
    // HashTable<int> h;
    // int a[] = {6, 31, 0, 18, 29, 72, 10, 14, 16};
    // for(auto e : a) 
    //     h.insert(e);
    // auto i = h.find(0);
    // cout << h.erase(0) << endl;
    // cout << h.erase(20) << endl;
    // cout << h.erase(16) << endl;
    // for(int e : a)
    //     cout << (h.find(e) != nullptr) << ' ';
}

void test02()
{
    HashTable<float> h;
    float a[] = {6.1, 3.1, 0.0, 1.8, 2.9, 7.2, 1.0, 1.4, 1.6, 91.7};
    for(auto e : a) 
        h.insert(e);
    for(auto e : a)
        cout << h.find(e)->_val << ' ';
}
// #include<unordered_set>
int main()
{
    test02();
    return 0;
}
// 6  29 10 31 72 14 18 16

#endif

// #include"unordered_set_map.h"
#include<unordered_set>
using namespace std;

void test_my_set01()
{
    unordered_set<int> s;
    int a[] = {6, 31, 0, 18, 29, 72, 10, 14, 16};
    for(auto e : a)
        s.insert(e);
    for(auto e : s)
        cout << e << ' ';
}

void test_my_map01()
{
    unordered_map<string, int> s;
    vector<string> strs = { "apple", "banana", "left", "apple", "left", "abc" };
    for(auto& e : strs)
        s[e]++;
    for(auto e : s)
    {
        cout << e.first << ' ' << e.second << endl;
    }
}
int main()
{
    test_my_set01();
    return 0;
}